package com.leen.admin.service;

import com.leen.admin.dto.MenuDTO;
import com.leen.admin.entity.Admin;
import com.leen.admin.entity.Menu;
import com.leen.admin.vo.menu.MenuTreeVO;
import com.leen.admin.vo.menu.MenuVo;

import java.util.List;
import java.util.Set;

/**
 * 类说明
 *
 * @author admin
 * @date 2021-05-21
 */
public interface MenuService extends CrudService<Menu ,Integer>{

    /**
     * 根据用户编号查询它的菜单列表
     * @param adminId
     * @return
     */
    List<MenuDTO> findMenuByAdminId( Integer adminId);

    /**
     * 构造前端项目的菜单样式数据
     * @param menuDtos
     * @return
     */
    List<MenuVo> buildMenus(List<MenuDTO> menuDtos);


    /**
     * 根据所有菜单构造权限分配的菜单树
     * @return
     */
    List<MenuTreeVO>  buildMenuTree();

    /**
     * 获取角色拥有菜单编号
     * @param roleId
     * @return
     */
    Set<Integer> searchOwnMenuIdByRoleId(int roleId);
}
